package com.ego.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ego.admin.po.SysRole;
import com.ego.admin.vo.SysRoleSearchVo;
import com.ego.common.vo.PageVo;

import java.util.List;

/**
 * @program: ego
 * @description: 系统角色服务接口
 * @author: KamTang
 * @create: 2023-02-22 19:11
 **/
public interface SysRoleService extends IService<SysRole> {
    /**
     * 根据用户ID，获取角色ID列表
     * @param userId 管理员id
     * @return List
     */
    List<Long> queryByUserId(Long userId);

    /**
     * 分页查询
     * @param search 传入参数
     * @return PageUtil
     */
    PageVo<SysRole> search(SysRoleSearchVo search);

    /**
     * 添加角色
     * @param role 角色
     */
    void saveRole(SysRole role);

    /**
     * 更新
     * @param role 角色实体类
     */
    void update(SysRole role);

    /**
     * 删除
     * @param roleIds 角色ID列表
     */
    void deleteBatch(Long[] roleIds);

    /**
     * 根据角色id获取角色具体信息
     * @param id
     * @return
     */
    SysRole getRoleInfoById(Long id);

    /**
     * 根据用户id获取该用户具有的角色详情
     * @param userId
     * @return
     */
    List<SysRole> getRoleInfoByUserId(Long userId);
}
